#ifndef CTOKEN_H_
#define CTOKEN_H_

#include "../../base/cobject.h"

/**
 * CToken - class representing general token
 * @author Michal Rost
 * @date 04.05.2008
 */
class CToken : public CObject {
public:
  CToken(int id = -1, std::string str = "", int line = 0) {
    this->id = id;
    this->str = str;
    this->line = line;
  }
  std::string getStr() const {
    return str;
  }
  int getLine() const {
    return line;
  }
  int getId() const {
    return id;
  }
  static std::string getClassName() {
    return "CToken";
  }
  static const int TOKEN_COMMENT = 1;
  static const int TOKEN_STRQUOTATION = 2;
  static const int TOKEN_EXPRESSION = 3;
  static const int TOKEN_WHITESPACE = 4;
  static const int TOKEN_TABULATOR = 5;  
  static const int TOKEN_EOLN = 6;
  static const int TOKEN_EOF = 7;
protected:
  std::string str;
  int line;
  int id;
};

#endif
